<!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Gauge Test</title> <style>body { padding: 0; margin: 0; background: #fff }</style> </head> <body> <button onclick="animateGauges()">Animate</button> <button onclick="stopGaugesAnimation()">Stop animation</button> <hr> <canvas data-type="radial-gauge" data-width="500" data-height="500" data-min-value="0" data-max-value="360" data-major-ticks="N,NE,E,SE,S,SW,W,NW,N" data-minor-ticks="22" data-ticks-angle="360" data-start-angle="180" data-stroke-ticks="false" data-highlights="false" data-color-plate="#33a" data-color-major-ticks="#f5f5f5" data-color-minor-ticks="#ddd" data-color-numbers="#ccc" data-color-needle="rgba(240, 128, 128, 1)" data-color-needle-end="rgba(255, 160, 122, .9)" data-value-box="false" data-value-text-shadow="false" data-color-circle-inner="#fff" data-color-needle-circle-outer="#ccc" data-needle-circle-size="15" data-needle-circle-outer="false" data-animation-rule="linear" data-needle-type="line" data-needle-start="75" data-needle-end="99" data-needle-width="3" data-borders="true" data-border-inner-width="0" data-border-middle-width="0" data-border-outer-width="10" data-color-border-outer="#ccc" data-color-border-outer-end="#ccc" data-color-needle-shadow-down="#222" data-border-shadow-width="0" data-animation-target="plate" data-units="ᵍ" data-title="DIRECTION" data-font-title-size="19" data-color-title="#f5f5f5" data-animation-duration="1500" data-value="45" data-animate-on-init="true" ></canvas> <canvas id="another-gauge"></canvas> <script> function initScriptedGauges() { new RadialGauge({ renderTo: 'another-gauge', width: 800, height: 800, units: 'Km/h', title: false, value: 0, minValue: 0, maxValue: 220, majorTicks: [ '0','20','40','60','80','100','120','140','160','180','200','220' ], minorTicks: 2, strokeTicks: false, highlights: [ { from: 0, to: 50, color: 'rgba(0,255,0,.15)' }, { from: 50, to: 100, color: 'rgba(255,255,0,.15)' }, { from: 100, to: 150, color: 'rgba(255,30,0,.25)' }, { from: 150, to: 200, color: 'rgba(255,0,225,.25)' }, { from: 200, to: 220, color: 'rgba(0,0,255,.25)' } ], colorPlate: '#222', colorMajorTicks: '#f5f5f5', colorMinorTicks: '#ddd', colorTitle: '#fff', colorUnits: '#ccc', colorNumbers: '#eee', colorNeedle: 'rgba(240, 128, 128, 1)', colorNeedleEnd: 'rgba(255, 160, 122, .9)', valueBox: true, animationRule: 'bounce', animationDuration: 500 }).draw(); } if (!Array.prototype.forEach) { Array.prototype.forEach = function(cb) { var i = 0, s = this.length; for (; i < s; i++) { cb && cb(this[i], i, this); } } } document.fonts && document.fonts.forEach(function(font) { font.loaded.then(function() { if (font.family.match(/Led/)) { document.gauges.forEach(function(gauge) { gauge.update(); }); } }); }); var timers = []; function animateGauges() { document.gauges.forEach(function(gauge) { timers.push(setInterval(function() { gauge.value = Math.random() * (gauge.options.maxValue - gauge.options.minValue) / 4 + gauge.options.minValue / 4; }, gauge.animation.duration + 50)); }); } function stopGaugesAnimation() { timers.forEach(function(timer) { clearInterval(timer); }); } </script> <script async src="../gauge.min.js" onload="initScriptedGauges()"></script> </body> </html>